package cc.lj.internal.coupons.domain.martcap.service;

import cc.lj.internal.core.model.PageBean;
import cc.lj.internal.core.model.PageParam;
import cc.lj.internal.coupons.domain.martcap.model.vo.CapMerchantDO;
import cc.lj.internal.coupons.interfaces.dto.command.CapMerchantClearValueCommand;

import java.util.List;

public interface ICapMerchantDomainService {
    Integer clearMerchantValue(CapMerchantClearValueCommand capMerchantClearValueCommand);
    Integer getValueSum(CapMerchantDO capMerchantDO);

    /**
     * 新增封顶额商户数据
     */
    Integer save(CapMerchantDO capMerchantDO);

    /**
     * 分页查询封顶额商户表数据
     * @param pageParam
     * @return 封顶额商户表list
     */
    PageBean<CapMerchantDO> selectPage(PageParam<CapMerchantDO> pageParam);

    /**
     * 通过主键删除商户
     * @param id 封顶额商户主键
     * @return 影响行数
     */
    Integer deleteById(Integer id);

    /**
     * 针对某个单独商户生成封顶额
     * @param id 商户表主键
     * @return 该商户的封顶额
     */
    Integer createCapValue(Integer id);

    /**
     * 商户批量生成封顶额
     * @param modelId 倍数模型表主键
     * @return 本次生成的商户总封顶额
     */
    Integer batchCreateCapValue(Integer modelId);

    /**
     * 查询指定封顶额活动下所有展位表主键List
     * @param capId
     * @return
     */
    List<Integer> getResourceIdListByModelId(Integer capId);

    /**
     * 等值查询list
     * @param capBatchDO
     * @return
     */
    List<CapMerchantDO> getList(CapMerchantDO capBatchDO);
}
